// app/model/user.js
module.exports = app => {
  console.log('app', app.commonSchema.UserInfoSchema)
  const mongoose = app.mongoose;
  const Schema = mongoose.Schema;

  const UserSchema = new Schema({
    username: { type: String  },
    password: { type: String  }, // , select: false
    // 实际上，在 RealWorld 应用程序中，并没有独立的 Profile 数据，
    // 用户的个人信息（如 email、bio 和 image 等）都是存储在用户对象中的。
    // 因此，在更新用户信息时，需要同时更新用户对象中的个人信息。
    ...app.commonSchema.UserInfoSchema(),
    // 使用 mongoose.Schema.Types.ObjectId 和 ref 属性来定义引用类型字段
    following: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }]
  });

  return mongoose.model('User', UserSchema);
}